package com.jy.wms.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;

import com.jy.wms.common.annotions.BaseServiceDescribe;
import com.jy.wms.common.base.BaseService;
import com.jy.wms.common.base.ServiceException;
import com.jy.wms.common.base.SucessException;
import com.jy.wms.dao.WmsShelfRuleMapper;
import com.jy.wms.pojo.WmsShelfRule;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import java.util.List;

/**
* @ClassName: WmsShelfRuleService.java
* @Description: TODO(这里用一句话描述这个类的作用)
* @Author lh
* @Date Mon Sep 04 11:27:57 GMT+08:00 2017
*/

@Service
public class WmsShelfRuleService extends BaseService<WmsShelfRuleMapper,WmsShelfRule> {

 /**
 * 插入一条记录
 * @param entity 实体对象
 * @param database 数据库名称
 * @return int
 */
public Integer baseInsert( WmsShelfRule entity, String database ){
     return dao.baseInsert( entity,database );
}

/**
* 插入一条记录（匹配有值的字段）
* @param entity 实体对象
* @return int
*/
@BaseServiceDescribe(moduleName = "上架规则",btnName = "增加")

public void baseInsertSelective( WmsShelfRule entity) throws ServiceException, SucessException {
   Integer a=dao.baseInsertSelective( entity );
   if(a>0){
       throw new SucessException("上架规则增加成功");
   }else{
       throw new ServiceException("上架规则增加失败");
   }

}

/**
* 删除（根据主键ID删除）
* @param id 主键
* @param database 数据库名称
* @return int
*/
public Integer baseDeleteByPrimaryKey( String id,String database ){
     return dao.baseDeleteByPrimaryKey( id,database );
}

/**
* 删除（根据ID 批量删除）
* @param idList 主键ID列表
* @param database 数据库名称
* @return int
*/
public Integer baseDeleteBathPrimaryKeys( List<String> idList,String database ){
     return dao.baseDeleteBathPrimaryKeys( idList,database );
}

/**
* 分页查询
* @param entity 实体
* @return Page<WmsShelfRule>
*/
@BaseServiceDescribe(moduleName = "上架规则",btnName = "查询")
public Page<WmsShelfRule> baseSelectPage(WmsShelfRule entity,String ckid) throws ServiceException {
    try{
        PageHelper.startPage(entity.getPage(),entity.getRows());
        return  (Page<WmsShelfRule>)dao.baseSelectPage( entity,ckid);
    }catch (Exception e){
        throw new ServiceException("查询所有上架规则",e);
    }



}
/**
 * 查询所有信息
 * @return WmsShelfRule
 */
public JSONArray baseSelectAll(String ckid) throws Exception{
    JSONArray jsonArray = new JSONArray();
    try {
        List<WmsShelfRule> list = dao.baseSelectAll(ckid);
        JSONObject json = new JSONObject();
        for (int i = 0; i < list.size(); i++) {
            json.put("dictionaryid",list.get(i).getId());
            json.put("value",list.get(i).getGzmc());
            jsonArray.add(json);
        }
        return jsonArray;
    } catch (Exception e) {
        throw new ServiceException("查询所有上架规则",e);
    }
}

/**
* 查询（根据主键ID查询）
* @param id 主键ID
* @param database 数据库名称
* @return WmsShelfRule
*/
public WmsShelfRule baseSelectByPrimaryKey( String id,String database ){
     return dao.baseSelectByPrimaryKey( id,database );
}

/**
* 查询（根据ID 批量查询）
* @param idList 主键ID列表
* @param database 数据库名称
* @return list
*/
public Integer baseSelectBathPrimaryKeys( List<WmsShelfRule> idList,String database ){
     return dao.baseSelectBathPrimaryKeys( idList,database );
}

/**
*修改 （匹配有值的字段）
* @param entity 主键ID列表
* @param database 数据库名称
* @return int
*/
public Integer baseUpdateByPrimaryKeySelective( WmsShelfRule entity,String database ){
     return dao.baseUpdateByPrimaryKeySelective( entity,database );
}

/**
*修改（根据主键ID修改）
* @param entity 主键ID列表
* @param database 数据库名称
* @return int
*/
public Integer baseUpdateByPrimaryKey( WmsShelfRule entity, String database ){
     return dao.baseUpdateByPrimaryKey( entity,database );
}
    /**
     * 根据名称查询数据库是否有相同规则名称的记录（去重）
     */
    public Integer getCountByMc( String gzmc,String gzdm,String ckid){
        return dao.getCountByMc(gzmc,gzdm,ckid);
    }

}
